package com.youzan.open.sdk.gen.v3_0_0.model;

import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Maps;
import com.google.common.collect.Multimap;
import com.youzan.open.sdk.model.APIParams;
import com.youzan.open.sdk.model.ByteWrapper;
import com.youzan.open.sdk.model.FileParams;
import java.util.List;
import java.util.Map;
import java.util.Date;

public class YouzanEbizStatsReferralOrdersSearchParams implements APIParams, FileParams  {

    /**
     * 结束日期，格式：yyyy-MM-dd，例如：2017-08-25
     */
    private String endDay;
    /**
     * 页码，例如：1
     */
    private Long page;
    /**
     * 每页数据条数，例如：10
     */
    private Long size;
    /**
     * 起始日期，格式：yyyy-MM-dd，例如：2017-06-25
     */
    private String startDay;
    /**
     * 跟踪链接 id
     */
    private Long trackLinkId;

    public void setEndDay(String endDay) {
        this.endDay = endDay;
    }

    public String getEndDay() {
        return this.endDay;
    }

    public void setPage(Long page) {
        this.page = page;
    }

    public Long getPage() {
        return this.page;
    }

    public void setSize(Long size) {
        this.size = size;
    }

    public Long getSize() {
        return this.size;
    }

    public void setStartDay(String startDay) {
        this.startDay = startDay;
    }

    public String getStartDay() {
        return this.startDay;
    }

    public void setTrackLinkId(Long trackLinkId) {
        this.trackLinkId = trackLinkId;
    }

    public Long getTrackLinkId() {
        return this.trackLinkId;
    }


    public Map<String, Object> toParams() {
        Map<String, Object> params = Maps.newHashMap();
        if (endDay != null) {
            params.put("end_day", endDay);
        }
        if (page != null) {
            params.put("page", page);
        }
        if (size != null) {
            params.put("size", size);
        }
        if (startDay != null) {
            params.put("start_day", startDay);
        }
        if (trackLinkId != null) {
            params.put("track_link_id", trackLinkId);
        }
        return params;
    }

    public Multimap<String, ByteWrapper> toFileParams() {
        Multimap<String, ByteWrapper> params = ArrayListMultimap.create();

            return params;
    }


}